//
//  MFSDKNativeAd.h
//  IMSDK_CHINA
//
//  Created by pillow on 2025/8/5.
//  Copyright © 2025 MFSDK. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>
#import "MFSDKNativeAdDataObject.h"
NS_ASSUME_NONNULL_BEGIN
@protocol MFSDKNativeAdDelegate;

@interface MFSDKNativeAd : NSObject
//初始化
- (instancetype)initWithSlotID:(NSString * _Nullable)slotID adSize:(CGSize)size;

//接收回调的代理
@property (nonatomic, weak, nullable) id<MFSDKNativeAdDelegate> delegate;

//设置广告平台，1是MFadx广告，2是广点通，4是穿山甲，5是快手，7是百度，9是Oct,10是倍孜,这个只是适配时，测试各个平台广告是否正常
//提审App Store前请删除这个方法的调用。（方法内有判断，线上模式不生效）
-(void)setAdPlat_test:(int)plat;

//穿山甲模版信息流，初始化时传递高度为0，则会自动更新最适合的view高度,初始化时传递高度不为0，返回的view就是设置的高度，但控件有可能显示不完整
//默认为YES,也就是穿山甲模版信息流初始化传递高度为0
-(void)setCSJ_autoUpdateHeight:(BOOL)autoUpdate;

//请求广告
- (void)loadAdData;

//广告的eCPM，单位：分
- (NSInteger)eCPM;

//返回广告是否可展示
//当广告已经加载完成&&未曝光&&未过期时，为YES，否则为NO
- (BOOL)isAdValid;

@end

@protocol MFSDKNativeAdDelegate <NSObject>

@optional
//广告数据回调 有广告时，dataObject有值，无广告时dataObject为nil
- (void)mfsdk_nativeAdSuccessToLoad:(MFSDKNativeAdDataObject* _Nullable)dataObject error:(NSError * _Nullable)error;

//模版信息流渲染成功
- (void)mfsdk_nativeAdViewRenderSuccess:(UIView *)nativeAdView;

//模版信息流，用户点击了叉号，需要开发者移除广告view
- (void)mfsdk_clickCloseButton:(UIView *)nativeAdView;

//信息流广告曝光回调
- (void)mfsdk_nativeAdViewExposured:(UIView *)nativeAdView;

//信息流广告被点击
- (void)mfsdk_nativeAdViewDidClick:(UIView *)nativeAdView;

@end

NS_ASSUME_NONNULL_END
